﻿using System;
using System.Collections.Generic;
using System.Text;

namespace RaisingStudio.Data.Common
{
    public interface IGenericDataProvider : ITransactionManager
    {
        int Delete<T>(object[] primaryKeys);
        int Delete<T>(string[] columnNames, object[] originalValues);
        int Delete<T>(CommonCommand conditionCommand);
        int Delete<T>();
        int Delete<T>(string[] columnNames, object[] originalValues, string transactionID);
        int Delete<T>(System.Collections.Generic.Dictionary<string, object> originalValues);
        int Delete<T>(object[] primaryKeys, string transactionID);
        int Delete<T>(System.Collections.Generic.Dictionary<string, object> originalValues, string transactionID);
        int Delete<T>(CommonCommand conditionCommand, string transactionID);
        int Delete<T>(string transactionID);
        int DeleteByRelation<T>(string tableName, object[] primaryKeys);
        int DeleteByRelation<T>(string tableName, CommonCommand conditionCommand);
        int DeleteByRelation<T>(string tableName, object[] primaryKeys, string transactionID);
        int DeleteByRelation<T>(string tableName, CommonCommand conditionCommand, string transactionID);
        int DeleteDataItem<T>(DataItem dataItem);
        int DeleteDataItem<T>(DataItem dataItem, string transactionID);
        int DeleteDataObject<T>(object dataObject);
        int DeleteDataObject<T>(object dataObject, string transactionID);
        int ExecuteDataSetNonQueryCommand<T>(CommonCommand commonCommand);
        int ExecuteDataSetNonQueryCommand<T>(CommonCommand commonCommand, string transactionID);
        System.Data.IDataReader ExecuteDataSetReaderCommand<T>(CommonCommand commonCommand, string transactionID);
        System.Data.IDataReader ExecuteDataSetReaderCommand<T>(CommonCommand commonCommand);
        object ExecuteDataSetScalarCommand<T>(CommonCommand commonCommand);
        object ExecuteDataSetScalarCommand<T>(CommonCommand commonCommand, string transactionID);
        T ExecuteDataTable<T>(CommonCommand selectCommand) where T : System.Data.DataTable;
        T ExecuteDataTable<T>(CommonCommand selectCommand, string transactionID) where T : System.Data.DataTable;
        int ExecuteDataTableNonQueryCommand<T>(CommonCommand commonCommand, string transactionID);
        int ExecuteDataTableNonQueryCommand<T>(CommonCommand commonCommand);
        System.Data.IDataReader ExecuteDataTableReaderCommand<T>(CommonCommand commonCommand);
        System.Data.IDataReader ExecuteDataTableReaderCommand<T>(CommonCommand commonCommand, string transactionID);
        object ExecuteDataTableScalarCommand<T>(CommonCommand commonCommand, string transactionID);
        object ExecuteDataTableScalarCommand<T>(CommonCommand commonCommand);
        bool Exists<T>(object[] primaryKeys, string transactionID);
        bool Exists<T>(object[] primaryKeys);
        bool ExistsDataItem<T>(DataItem dataItem);
        bool ExistsDataItem<T>(DataItem dataItem, string transactionID);
        bool ExistsDataObject<T>(object dataObject, string transactionID);
        bool ExistsDataObject<T>(object dataObject);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys);
        int Fill<T>(System.Data.DataTable dataTable, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys, string[] columnNames);
        int Fill<T>(System.Data.DataTable dataTable, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys, string[] columnNames, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand);
        int Fill<T>(System.Data.DataTable dataTable);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand);
        int Fill<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet, string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary);
        int Fill<T>(System.Data.DataSet dataSet, string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary);
        int Fill<T>(System.Data.DataSet dataSet, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet, string[] tableNames);
        int Fill<T>(System.Data.DataSet dataSet, string[] tableNames, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet);
        int FillByRelation<T>(System.Data.DataSet dataSet, string tableName, object[] primaryKeys, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, bool viewMode, string transactionID);
        int FillByRelation<T>(System.Data.DataSet dataSet, string tableName, object[] primaryKeys, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, bool viewMode);
        int FillByRelation<T>(System.Data.DataSet dataSet, string tableName, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, CommonCommand conditionCommand, bool viewMode, string transactionID);
        int FillByRelation<T>(System.Data.DataSet dataSet, string tableName, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, CommonCommand conditionCommand, bool viewMode);
        int FillDataItem<T>(DataItem dataItem, string[] columnNames);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys, string[] columnNames);
        int FillDataItem<T>(DataItem dataItem);
        int FillDataItem<T>(DataItem dataItem, string[] columnNames, string transactionID);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys, string[] columnNames, string transactionID);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys, string transactionID);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys);
        int FillDataItem<T>(DataItem dataItem, string transactionID);
        int FillDataObject<T>(object dataObject, string[] columnNames);
        int FillDataObject<T>(object dataObject, object[] primaryKeys, string[] columnNames);
        int FillDataObject<T>(object dataObject);
        int FillDataObject<T>(object dataObject, object[] primaryKeys);
        int FillDataObject<T>(object dataObject, object[] primaryKeys, string transactionID);
        int FillDataObject<T>(object dataObject, string transactionID);
        int FillDataObject<T>(object dataObject, object[] primaryKeys, string[] columnNames, string transactionID);
        int FillDataObject<T>(object dataObject, string[] columnNames, string transactionID);
        int FillDataTable<T>(System.Data.DataTable dataTable, CommonCommand selectCommand);
        int FillDataTable<T>(System.Data.DataTable dataTable, CommonCommand selectCommand, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, int startRecord, int maxRecords);
        int FillView<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand);
        int FillView<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        int FillView<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand);
        int FillView<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        object GetAvgData<T>(string columnName, CommonCommand conditionCommand);
        object GetAvgData<T>(string columnName, string transactionID);
        object GetAvgData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetAvgData<T>(string columnName);
        T GetDataByRelation<T>(string tableName, object[] primaryKeys, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, bool viewMode, string transactionID) where T : System.Data.DataSet;
        T GetDataByRelation<T>(string tableName, object[] primaryKeys, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, bool viewMode) where T : System.Data.DataSet;
        T GetDataByRelation<T>(string tableName, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, CommonCommand conditionCommand, bool viewMode, string transactionID) where T : System.Data.DataSet;
        T GetDataByRelation<T>(string tableName, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, CommonCommand conditionCommand, bool viewMode) where T : System.Data.DataSet;
        int GetDataCount<T>(CommonCommand conditionCommand);
        int GetDataCount<T>();
        int GetDataCount<T>(CommonCommand conditionCommand, string transactionID);
        int GetDataCount<T>(string transactionID);
        T GetDataItem<T>(object[] primaryKeys, string[] columnNames) where T : DataItem;
        T GetDataItem<T>(DataItem dataItem) where T : DataItem;
        T GetDataItem<T>(DataItem dataItem, string[] columnNames) where T : DataItem;
        T GetDataItem<T>(DataItem dataItem, string[] columnNames, string transactionID) where T : DataItem;
        T GetDataItem<T>(object[] primaryKeys) where T : DataItem;
        T GetDataItem<T>(object[] primaryKeys, string transactionID) where T : DataItem;
        T GetDataItem<T>(object[] primaryKeys, string[] columnNames, string transactionID) where T : DataItem;
        T GetDataItem<T>(DataItem dataItem, string transactionID) where T : DataItem;
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>();
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(CommonCommand conditionCommand);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(CommonCommand conditionCommand, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, CommonCommand conditionCommand);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(string[] columnNames, string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, CommonCommand conditionCommand);
        System.Collections.IList GetDataItemList<T>();
        System.Collections.IList GetDataItemList<T>(CommonCommand conditionCommand);
        System.Collections.IList GetDataItemList<T>(CommonCommand conditionCommand, string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, string transactionID);
        System.Collections.IList GetDataItemList<T>(string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(string[] columnNames);
        System.Collections.IList GetDataItemList<T>(CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(string[] columnNames, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        T GetDataObject<T>(object[] primaryKeys, string transactionID);
        T GetDataObject<T>(object dataObject, string transactionID);
        T GetDataObject<T>(object[] primaryKeys, string[] columnNames, string transactionID);
        T GetDataObject<T>(object[] primaryKeys, string[] columnNames);
        T GetDataObject<T>(object dataObject, string[] columnNames);
        T GetDataObject<T>(object dataObject);
        T GetDataObject<T>(object dataObject, string[] columnNames, string transactionID);
        T GetDataObject<T>(object[] primaryKeys);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(CommonCommand conditionCommand, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, CommonCommand conditionCommand);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>();
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(CommonCommand conditionCommand);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(string[] columnNames);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>();
        System.Collections.IList GetDataObjectList<T>(string[] columnNames);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, CommonCommand conditionCommand);
        System.Collections.IList GetDataObjectList<T>(CommonCommand conditionCommand);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, string transactionID);
        System.Collections.IList GetDataObjectList<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(string transactionID);
        System.Collections.IList GetDataObjectList<T>(int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(CommonCommand conditionCommand, string transactionID);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID);
        System.Collections.IList GetDataObjectList<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(CommonCommand conditionCommand, int startRecord, int maxRecords);
        T GetDataSet<T>() where T : System.Data.DataSet;
        T GetDataSet<T>(string[] tableNames) where T : System.Data.DataSet;
        T GetDataSet<T>(System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary) where T : System.Data.DataSet;
        T GetDataSet<T>(string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary) where T : System.Data.DataSet;
        T GetDataSet<T>(string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(string[] tableNames, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(string transactionID) where T : System.Data.DataSet;
        T GetDataTable<T>(string[] columnNames) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(CommonCommand conditionCommand) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, CommonCommand conditionCommand) where T : System.Data.DataTable;
        T GetDataTable<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys, string[] columnNames) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys) where T : System.Data.DataTable;
        T GetDataTable<T>(int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>() where T : System.Data.DataTable;
        T GetDataTable<T>(CommonCommand conditionCommand, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(CommonCommand conditionCommand, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys, string[] columnNames, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        object GetMaxData<T>(string columnName);
        object GetMaxData<T>(string columnName, CommonCommand conditionCommand);
        object GetMaxData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetMaxData<T>(string columnName, string transactionID);
        object GetMinData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetMinData<T>(string columnName);
        object GetMinData<T>(string columnName, CommonCommand conditionCommand);
        object GetMinData<T>(string columnName, string transactionID);
        object GetSumData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetSumData<T>(string columnName, string transactionID);
        object GetSumData<T>(string columnName, CommonCommand conditionCommand);
        object GetSumData<T>(string columnName);
        object GetViewAvgData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetViewAvgData<T>(string columnName, CommonCommand conditionCommand);
        T GetViewData<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(CommonCommand conditionCommand, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(CommonCommand conditionCommand) where T : System.Data.DataTable;
        T GetViewData<T>(CommonCommand conditionCommand, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetViewData<T>(string[] columnNames, CommonCommand conditionCommand, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetViewData<T>(CommonCommand conditionCommand, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(string[] columnNames, CommonCommand conditionCommand, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(string[] columnNames, CommonCommand conditionCommand) where T : System.Data.DataTable;
        int GetViewDataCount<T>(CommonCommand conditionCommand, string transactionID);
        int GetViewDataCount<T>(CommonCommand conditionCommand);
        object GetViewMaxData<T>(string columnName, CommonCommand conditionCommand);
        object GetViewMaxData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetViewMinData<T>(string columnName, CommonCommand conditionCommand);
        object GetViewMinData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetViewSumData<T>(string columnName, CommonCommand conditionCommand, string transactionID);
        object GetViewSumData<T>(string columnName, CommonCommand conditionCommand);
        int Insert<T>(string[] columnNames, object[] values, string transactionID);
        int Insert<T>(object[] values);
        int Insert<T>(System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Insert<T>(string[] columnNames, object[] values);
        int Insert<T>(System.Collections.Generic.Dictionary<string, object> values);
        int Insert<T>(object[] values, string transactionID);
        int InsertDataItem<T>(DataItem dataItem, string transactionID);
        int InsertDataItem<T>(DataItem dataItem, string[] columnNames, string transactionID);
        int InsertDataItem<T>(DataItem dataItem);
        int InsertDataItem<T>(DataItem dataItem, string[] columnNames);
        int InsertDataObject<T>(object dataObject, string[] columnNames, string transactionID);
        int InsertDataObject<T>(object dataObject);
        int InsertDataObject<T>(object dataObject, string[] columnNames);
        int InsertDataObject<T>(object dataObject, string transactionID);
        int Save<T>(object[] values, string transactionID);
        int Save<T>(object[] values);
        int SaveDataItem<T>(DataItem dataItem, string transactionID);
        int SaveDataItem<T>(DataItem dataItem, string[] columnNames, string transactionID);
        int SaveDataItem<T>(DataItem dataItem, string[] columnNames);
        int SaveDataItem<T>(DataItem dataItem);
        int SaveDataObject<T>(object dataObject, string[] columnNames);
        int SaveDataObject<T>(object dataObject, string[] columnNames, string transactionID);
        int SaveDataObject<T>(object dataObject);
        int SaveDataObject<T>(object dataObject, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary);
        int Update<T>(System.Data.DataSet dataSet, string[] tableNames);
        int Update<T>(System.Data.DataSet dataSet, string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary, string transactionID);
        int Update<T>(System.Data.DataSet dataSet);
        int Update<T>(System.Data.DataSet dataSet, string[] tableNames, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, string[] tableNames, System.Collections.Generic.Dictionary<string, string[]> columnNamesDictionary);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataRow[] dataRows, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataRow[] dataRows, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, string transactionID);
        int Update<T>(string[] columnNames, object[] values, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataTable dataTable, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(object[] primaryKeys, string[] columnNames, object[] values, string transactionID);
        int Update<T>(object[] primaryKeys, object[] values, string transactionID);
        int Update<T>(System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Update<T>(object[] primaryKeys, System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, bool checkConcurrency);
        int Update<T>(CommonCommand conditionCommand, System.Collections.Generic.Dictionary<string, object> values);
        int Update<T>(CommonCommand conditionCommand, object[] values, string transactionID);
        int Update<T>(CommonCommand conditionCommand, string[] columnNames, object[] values, string transactionID);
        int Update<T>(CommonCommand conditionCommand, string[] columnNames, object[] values);
        int Update<T>(string[] columnNames, object[] originalValues, object[] values, string transactionID);
        int Update<T>(System.Data.DataRow dataRow, string[] columnNames, string transactionID);
        int Update<T>(System.Data.DataRow dataRow, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, bool checkConcurrency);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, bool checkConcurrency);
        int Update<T>(System.Data.DataRow dataRow, bool checkConcurrency);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, bool checkConcurrency);
        int Update<T>(object[] values, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataRow dataRow, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames);
        int Update<T>(System.Data.DataRow dataRow, string[] columnNames, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(CommonCommand conditionCommand, object[] values);
        int Update<T>(System.Data.DataRow[] dataRows, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(object[] primaryKeys, string[] columnNames, object[] values);
        int Update<T>(System.Collections.Generic.Dictionary<string, object> originalValues, System.Collections.Generic.Dictionary<string, object> values);
        int Update<T>(string[] columnNames, object[] originalValues, object[] values);
        int Update<T>(string[] columnNames, object[] values);
        int Update<T>(System.Data.DataRow[] dataRows, UpdateBehavior updateBehavior);
        int Update<T>(object[] primaryKeys, object[] values);
        int Update<T>(System.Collections.Generic.Dictionary<string, object> values);
        int Update<T>(System.Data.DataRow[] dataRows);
        int Update<T>(System.Data.DataRow dataRow, string[] columnNames);
        int Update<T>(System.Data.DataTable dataTable);
        int Update<T>(System.Data.DataRow[] dataRows, string[] columnNames);
        int Update<T>(object[] primaryKeys, System.Collections.Generic.Dictionary<string, object> values);
        int Update<T>(object[] values);
        int Update<T>(System.Data.DataRow dataRow);
        int Update<T>(System.Data.DataTable dataTable, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataTable dataTable, string[] columnNames, UpdateBehavior updateBehavior);
        int Update<T>(System.Collections.Generic.Dictionary<string, object> originalValues, System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Update<T>(CommonCommand conditionCommand, System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Update<T>(System.Data.DataRow dataRow, string[] columnNames, bool checkConcurrency);
        int UpdateDataItem<T>(DataItem dataItem);
        int UpdateDataItem<T>(DataItem dataItem, string[] columnNames);
        int UpdateDataItem<T>(DataItem dataItem, string[] columnNames, string transactionID);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem, string transactionID);
        int UpdateDataItem<T>(DataItem dataItem, string transactionID);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem, string[] columnNames);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem, string[] columnNames, string transactionID);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject);
        int UpdateDataObject<T>(object dataObject, string[] columnNames, string transactionID);
        int UpdateDataObject<T>(object dataObject, string[] columnNames);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject, string transactionID);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject, string[] columnNames, string transactionID);
        int UpdateDataObject<T>(object dataObject);
        int UpdateDataObject<T>(object dataObject, string transactionID);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject, string[] columnNames);
        int UpdateDataTable<T>(System.Data.DataTable dataTable, CommonCommand insertCommand, CommonCommand updateCommand, CommonCommand deleteCommand, UpdateBehavior updateBehavior);
        int UpdateDataTable<T>(System.Data.DataTable dataTable, CommonCommand insertCommand, CommonCommand updateCommand, CommonCommand deleteCommand);
        int UpdateDataTable<T>(System.Data.DataTable dataTable, CommonCommand insertCommand, CommonCommand updateCommand, CommonCommand deleteCommand, UpdateBehavior updateBehavior, string transactionID);
        int UpdateDataTable<T>(System.Data.DataTable dataTable, CommonCommand insertCommand, CommonCommand updateCommand, CommonCommand deleteCommand, string transactionID);

        #region Extension Functions
        int Delete<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int Delete<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] originalValues, string transactionID);
        int Delete<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        int Delete<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] originalValues);
        int DeleteByPrimaryKey<T>(object primaryKey, string transactionID);
        int DeleteByPrimaryKey<T>(object primaryKey);
        int DeleteByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int DeleteByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys, string transactionID);
        int DeleteByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys);
        int DeleteByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        int DeleteByRelationByPrimaryKey<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object primaryKey);
        int DeleteByRelationByPrimaryKey<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object primaryKey, string transactionID);
        int DeleteDataItemByPrimaryKey<T>(object primaryKey, string transactionID);
        int DeleteDataItemByPrimaryKey<T>(object primaryKey);
        int DeleteDataObjectByPrimaryKey<T>(object primaryKey);
        int DeleteDataObjectByPrimaryKey<T>(object primaryKey, string transactionID);
        bool ExistsByPrimaryKey<T>(object primaryKey, string transactionID);
        bool ExistsByPrimaryKey<T>(object primaryKey);
        bool ExistsDataItemByPrimaryKey<T>(object primaryKey, string transactionID);
        bool ExistsDataItemByPrimaryKey<T>(object primaryKey);
        bool ExistsDataObjectByPrimaryKey<T>(object primaryKey, string transactionID);
        bool ExistsDataObjectByPrimaryKey<T>(object primaryKey);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary);
        int Fill<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID);
        int Fill<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Fill<T>(System.Data.DataTable dataTable, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Fill<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID);
        int Fill<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        int FillByPrimaryKey<T>(System.Data.DataTable dataTable, object primaryKey, string transactionID);
        int FillByPrimaryKey<T>(System.Data.DataTable dataTable, object primaryKey);
        int FillByPrimaryKey<T>(System.Data.DataTable dataTable, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillByPrimaryKey<T>(System.Data.DataTable dataTable, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillByRelation<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, bool viewMode);
        int FillByRelation<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, bool viewMode, string transactionID);
        int FillByRelation<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode, string transactionID);
        int FillByRelation<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode);
        int FillByRelationByPrimaryKey<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, object primaryKey, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode, string transactionID);
        int FillByRelationByPrimaryKey<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression tableExpression, object primaryKey, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillDataItem<T>(DataItem dataItem, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataItemByPrimaryKey<T>(DataItem dataItem, object primaryKey, string transactionID);
        int FillDataItemByPrimaryKey<T>(DataItem dataItem, object primaryKey);
        int FillDataItemByPrimaryKey<T>(DataItem dataItem, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataItemByPrimaryKey<T>(DataItem dataItem, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillDataObject<T>(object dataObject, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataObject<T>(object dataObject, object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataObjectByPrimaryKey<T>(object dataObject, object primaryKey);
        int FillDataObjectByPrimaryKey<T>(object dataObject, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int FillDataObjectByPrimaryKey<T>(object dataObject, object primaryKey, string transactionID);
        int FillDataObjectByPrimaryKey<T>(object dataObject, object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        int FillView<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, string transactionID);
        object GetAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression);
        object GetAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        T GetDataByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, bool viewMode, string transactionID) where T : System.Data.DataSet;
        T GetDataByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode) where T : System.Data.DataSet;
        T GetDataByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, bool viewMode) where T : System.Data.DataSet;
        T GetDataByRelation<T>(RaisingStudio.Data.Expressions.TableExpression tableExpression, object[] primaryKeys, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, bool viewMode, string transactionID) where T : System.Data.DataSet;
        int GetDataCount<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int GetDataCount<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        T GetDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : DataItem;
        T GetDataItem<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : DataItem;
        T GetDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : DataItem;
        T GetDataItem<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : DataItem;
        T GetDataItemByCondition<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : DataItem;
        T GetDataItemByCondition<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : DataItem;
        T GetDataItemByCondition<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : DataItem;
        T GetDataItemByCondition<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : DataItem;
        DataItem GetDataItemByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : DataItem;
        DataItem GetDataItemByPrimaryKey<T>(object primaryKey) where T : DataItem;
        DataItem GetDataItemByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : DataItem;
        DataItem GetDataItemByPrimaryKey<T>(object primaryKey, string transactionID) where T : DataItem;
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IEnumerable GetDataItemEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IList GetDataItemList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        T GetDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        T GetDataObject<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        T GetDataObject<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        T GetDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        T GetDataObjectByCondition<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        T GetDataObjectByCondition<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        T GetDataObjectByCondition<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        T GetDataObjectByCondition<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        T GetDataObjectByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        T GetDataObjectByPrimaryKey<T>(object primaryKey, string transactionID);
        T GetDataObjectByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        T GetDataObjectByPrimaryKey<T>(object primaryKey);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IEnumerable GetDataObjectEnumerator<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords);
        System.Collections.IList GetDataObjectList<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        T GetDataSet<T>(RaisingStudio.Data.Expressions.TableExpression[] tableExpressions) where T : System.Data.DataSet;
        T GetDataSet<T>(RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary) where T : System.Data.DataSet;
        T GetDataSet<T>(RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID) where T : System.Data.DataSet;
        T GetDataSet<T>(RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary) where T : System.Data.DataSet;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTable<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : System.Data.DataTable;
        T GetDataTable<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetDataTableByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions) where T : System.Data.DataTable;
        T GetDataTableByPrimaryKey<T>(object primaryKey, string transactionID) where T : System.Data.DataTable;
        T GetDataTableByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID) where T : System.Data.DataTable;
        T GetDataTableByPrimaryKey<T>(object primaryKey) where T : System.Data.DataTable;
        object GetMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression);
        object GetMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, string transactionID);
        object GetMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        object GetMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, string transactionID);
        object GetMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        object GetMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression);
        object GetMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression);
        object GetSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        object GetSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, string transactionID);
        object GetSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewAvgData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        T GetViewData<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, int startRecord, int maxRecords, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID) where T : System.Data.DataTable;
        T GetViewData<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression) where T : System.Data.DataTable;
        int GetViewDataCount<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int GetViewDataCount<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewMaxData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        object GetViewMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        object GetViewMinData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression);
        object GetViewSumData<T>(RaisingStudio.Data.Expressions.ColumnExpression columnExpression, RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, string transactionID);
        int Insert<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values);
        int Insert<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values, string transactionID);
        int InsertDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int InsertDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int InsertDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int InsertDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int SaveDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int SaveDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int SaveDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int SaveDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Update<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Update<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency);
        int Update<T>(System.Data.DataRow dataRow, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency);
        int Update<T>(System.Data.DataRow dataRow, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] originalValues, object[] values);
        int Update<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values);
        int Update<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values);
        int Update<T>(System.Data.DataSet dataSet, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary);
        int Update<T>(System.Data.DataRow dataRow, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, string transactionID);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, UpdateBehavior updateBehavior, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int Update<T>(System.Data.DataRow dataRow, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, object[] values);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, object[] values, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ConditionExpression conditionExpression, System.Collections.Generic.Dictionary<string, object> values);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int Update<T>(System.Data.DataTable dataTable, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, UpdateBehavior updateBehavior);
        int Update<T>(System.Data.DataRow[] dataRows, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, bool checkConcurrency, UpdateBehavior updateBehavior);
        int Update<T>(object[] primaryKeys, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values, string transactionID);
        int Update<T>(System.Data.DataSet dataSet, RaisingStudio.Data.Expressions.TableExpression[] tableExpressions, System.Collections.Generic.Dictionary<RaisingStudio.Data.Expressions.TableExpression, RaisingStudio.Data.Expressions.ColumnExpression[]> columnExpressionsDictionary, string transactionID);
        int Update<T>(RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] originalValues, object[] values, string transactionID);
        int UpdateByPrimaryKey<T>(object primaryKey, object[] values);
        int UpdateByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values);
        int UpdateByPrimaryKey<T>(object primaryKey, System.Collections.Generic.Dictionary<string, object> values);
        int UpdateByPrimaryKey<T>(object primaryKey, System.Collections.Generic.Dictionary<string, object> values, string transactionID);
        int UpdateByPrimaryKey<T>(object primaryKey, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, object[] values, string transactionID);
        int UpdateByPrimaryKey<T>(object primaryKey, object[] values, string transactionID);
        int UpdateDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataItem<T>(object[] primaryKeys, DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataItem<T>(DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataItemByPrimaryKey<T>(object primaryKey, DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataItemByPrimaryKey<T>(object primaryKey, DataItem dataItem, string transactionID);
        int UpdateDataItemByPrimaryKey<T>(object primaryKey, DataItem dataItem, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataItemByPrimaryKey<T>(object primaryKey, DataItem dataItem);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataObject<T>(object[] primaryKeys, object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataObject<T>(object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataObjectByPrimaryKey<T>(object primaryKey, object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions, string transactionID);
        int UpdateDataObjectByPrimaryKey<T>(object primaryKey, object dataObject, RaisingStudio.Data.Expressions.ColumnExpression[] columnExpressions);
        int UpdateDataObjectByPrimaryKey<T>(object primaryKey, object dataObject);
        int UpdateDataObjectByPrimaryKey<T>(object primaryKey, object dataObject, string transactionID);
        #endregion
    }
}
